const builtin = @import("builtin");
const std = @import("std");

pub fn build(b: *std.Build) !void {
    const optimize = b.standardOptimizeOption(.{});
    const target = b.standardTargetOptions(.{});

    const glfw_dep = b.dependency("glfw", .{
        .target = target,
        .optimize = optimize,
    });
    var options = b.addOptions();
    options.addOption(bool, "is_emscripten1", target.result.os.tag == .emscripten);
    var module = b.addModule("mach-glfw", .{
        .target = target,
        .optimize = optimize,
        .root_source_file = b.path("src/main.zig"),
    });
    // const options_module = options.createModule();
    // module.addImport("mg_options", options_module);
    module.addOptions("mg_options", options);
    module.addIncludePath(glfw_dep.path("include"));
    // module.addIncludePath(glfw_dep.path("include"));

    // module.linkLibrary(glfw_dep.artifact("glfw"));
    b.installArtifact(glfw_dep.artifact("glfw"));

    // const test_step = b.step("test", "Run library tests");
    // const main_tests = b.addTest(.{
    //     .name = "glfw-tests",
    //     .root_module = module,
    // });
    // main_tests.linkLibrary(glfw_dep.artifact("glfw"));
    // b.installArtifact(main_tests);
    // test_step.dependOn(&b.addRunArtifact(main_tests).step);

    // if (target.result.os.tag.isDarwin()) {
    //     if (glfw_dep.builder.lazyDependency("xcode_frameworks", .{
    //         .target = target,
    //         .optimize = optimize,
    //     })) |dep| {
    //         module.addSystemFrameworkPath(dep.path("Frameworks"));
    //         module.addSystemIncludePath(dep.path("include"));
    //         module.addLibraryPath(dep.path("lib"));

    //         main_tests.root_module.addSystemFrameworkPath(dep.path("Frameworks"));
    //         main_tests.root_module.addSystemIncludePath(dep.path("include"));
    //         main_tests.root_module.addLibraryPath(dep.path("lib"));
    //     }
    // }
}
